# encryption_module.py

import random
import string
import base64
from Crypto.Cipher import DES3

# 生成随机密钥
def generate_time_code(length=32):
    return ''.join(random.choices(string.ascii_letters + string.digits, k=length))

# DES3 加密函数
def getDES3Token(text, time_code):
    BS = 8
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS).encode()
    key = time_code[:24].encode()  # DES3 密钥为 24 字节
    iv = b'20170908'  # 固定的 IV
    plaintext = pad(text.encode())  # 对明文进行填充
    cipher = DES3.new(key, DES3.MODE_CBC, iv)  # 创建 DES3 加密器
    result = cipher.encrypt(plaintext)  # 加密
    result = base64.b64encode(result)  # 将结果进行 base64 编码
    return str(result, encoding='utf-8').replace('\n', '')  # 转换为字符串并返回

